Page({
  data: {
    num: '1',
    phone: '',
    nickName: '',
    IDcard: '',
    usernameFlag: true,
    // 详细的票数票号数组
    ticketIdArr: [],
    token: '',
    // 票的数量
    nums: '',
    hours: '',
    tokenUrl: '',
    access_token: ''
  },
  onLoad() {
    const db = wx.cloud.database()
    const stock = db.collection('stock')
    stock.get().then(res => {
      this.setData({
        nums: res.data[0].ticketNums
      })
      // 如果数据库的日期和今天的日期不一样，则更新时间，并且更新票数为99张
      if (this.data.hours != res.data[0].due) {
        console.log('今天的时间和数据库的时间不对，更新数据库')
        stock.doc('18ed0968618fd88b0501fd050e478eca').update({
          data: {
            due: this.data.hours,
            ticketNums: 99
          }
        }).then(res => {
          console.log(res)
          console.log(`更新票数和日期成功！`)
          // 更新成功后再获取一次数据库的值，并且this.setData 渲染页面
          stock.get().then(res => {
            console.log(res)
            this.setData({
              nums: res.data[0].ticketNums
            })
          })
        })
      } else {
        console.log('今天的时间和数据库的时间一致，不执行更新数据库票数和日期重置操作')
      }
      console.log(res)
      // console.log(this.data.hours)
      // console.log(res.data[0].due)
    })

    // 日期
    let mytime = new Date()
    let year = mytime.getFullYear()
    let month = mytime.getMonth() + 1
    let day = mytime.getDate()//当天的时间
    var tomorrow = mytime.getDate() //第二天的时间
    let hour = mytime.getHours()//小时
    // 获取今天是星期几
    var str = "星期" + "日一二三四五六".charAt(new Date().getDay());
    if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
      if (day != 31) {
        ++tomorrow
        console.log(`${year}年${month}月${tomorrow}日`)

      }
    } else if (month == 2) {
      // 判断闰年 是闰年 2月份是29天
      if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0))) {
        if (day != 29) {
          ++tomorrow
          console.log(`${year}年${month}月${tomorrow}日`)
        }
      }
    } else {
      if (day != 30) {
        ++tomorrow
        console.log(`${year}年${month}月${tomorrow}日`)
      }
    }
    //如果过了14点则之能订购第二天的门票，14点之前可以购买当前的门票
    if (hour >= 14) {
      this.data.hours = `${month}月${tomorrow}日`
    } else {
      this.data.hours = `${month}月${day}日`
    }
    this.setData({
      hours: this.data.hours
    })
  },
  // 点击计数购买数量
  onChange(event) {
    this.data.num = event.detail
    console.log(this.data.num)
  },
  // 获取取票人信息
  username(event) {
    this.data.nickName = event.detail
  },
  // 获取手机号码
  phone(event) {
    this.data.phone = event.detail
  },
  // 获取身份证号码
  IDcard(event) {
    this.data.IDcard = event.detail
  },
  // 提交表单信息
  smbuit: function () {
    
    // 初始化数据库 
    const db = wx.cloud.database()
    const orders = db.collection('orders')
    const stock = db.collection('stock')
    const _ = db.command
    // 在这里就生成详细票的编号
    for (let i = 0; i < this.data.num; i++) {
      // 获取时间戳
      let timestamp = new Date().getTime();
      // 因为时间戳太长了，获取后6位数，需要将它转换成字符串类型 toString() 然后使用slice(6)去掉前六位，然后parseInt()转换为数字类型
      //  时间戳
      let a = new Date().getTime()
      let b = '0' + a
      let c = b.slice(13)
      let timer = parseInt(c)
      // 随机数
      let randNum = Math.floor(Math.random() * 99 * 99)
      // 门票编号
      let ticketId = 'LZKJG' + timer + randNum
      this.data.ticketIdArr.push({
        ticketId: ticketId
      })
    }
    // 时间初始化
    let mytime = new Date()
    let year = mytime.getFullYear()
    let month = mytime.getMonth() + 1
    let day = mytime.getDate()
    var tomorrow = mytime.getDate() //第二天的时间
    // 获取今天是星期几
    var str = "星期" + "日一二三四五六".charAt(new Date().getDay());
    if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
      if (day != 31) {
        ++tomorrow
        console.log(`${year}年${month}月${tomorrow}日`)

      }
    } else if (month == 2) {
      // 判断闰年 是闰年 2月份是29天
      if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0))) {
        if (day != 29) {
          ++tomorrow
          console.log(`${year}年${month}月${tomorrow}日`)
        }
      }
    } else {
      if (day != 30) {
        ++tomorrow
        console.log(`${year}年${month}月${tomorrow}日`)
      }
    }
    if (this.data.nums == 0) {
      wx.showToast({
        title: '没票了',
        icon: 'error'
      })
    } else {
      wx.showLoading({
        title: '购买中',
      })
      setTimeout(function () {
        wx.hideLoading()
      }, 2000)
      if ((this.data.username != '') && (this.data.phone.length == 11) && (this.data.IDcard.length == 18)) {
        orders.add({
          data: {
            nickName: this.data.nickName,
            phone: this.data.phone,
            IDcard: this.data.IDcard,
            num: this.data.num,
            state: 0,
            stateinfo: '已支付',
            // 下单时间
            nowDate: `${year}-${month}-${day}`,
            week: str,
            ticketIdArr: this.data.ticketIdArr,
            price: '免费',
            mmddDate: this.data.hours,
            btn: '点击使用入馆',
            comment: '',
            // 状态样式 默认为 #00C375 绿色 可以使用  待评论 用黄色 #FFCE44    已评论 是灰色#969696
            css: "color:#00C375"
          }
        }).then(res => {
          console.log('购买成功')
          console.log(this.data.nums)
          console.log(this.data.num)
          console.log(typeof (this.data.num))
          console.log(typeof (this.data.nums))
          stock.doc('18ed0968618fd88b0501fd050e478eca').update({
            data: {
              ticketNums: _.inc(-this.data.num)
            }
          }).then(res => {
            console.log(res)
            wx.showToast({
              title: '购买成功',
              success: res => {
                console.log(this.data.nums - this.data.num)
                console.log(this.data.nums)
                wx.switchTab({
                  url: '../../order/order',
                })
              }
            })
          })
        })
      } else {
        wx.showToast({
          title: '请输入完整信息',
          icon: 'error'
        })
      }
    }
  },
})